// 补零
function padZero(n) {
  return n < 10 ? '0' + n : n;
}
/**
 * 将 Unix 时间戳（秒或毫秒）格式化为指定字符串
 * @param {Number} ts   时间戳，支持 10 位秒级 或 13 位毫秒级
 * @param {String} fmt  目标格式，默认 'yyyy-MM-dd hh:mm:ss'
 * @returns {String}    格式化后的字符串
 *
 * 使用示例:
 * formatTime(1680000000)               -> 2023-03-29 09:20:00
 * formatTime(1680000000000, 'MM/dd')   -> 03/29
 */
export function formatTime(ts, fmt = 'yyyy-MM-dd hh:mm:ss') {
  // 统一转成毫秒
  const date = new Date(ts.toString().length === 10 ? ts * 1000 : ts);

  const opt = {
    'yyyy': date.getFullYear(),
    'MM':   padZero(date.getMonth() + 1),
    'dd':   padZero(date.getDate()),
    'hh':   padZero(date.getHours()),
    'mm':   padZero(date.getMinutes()),
    'ss':   padZero(date.getSeconds())
  };

  return fmt.replace(/yyyy|MM|dd|hh|mm|ss/g, key => opt[key]);
}
